home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Text⁄Files / File List 14 / About.c < prev    next >
Text File  |  1990-09-14  |  3KB  |  110 lines

  1. /*
  2.     FilList 1.4
  3.     "About.c"
  4. */
  5.  
  6. #include "Main.h"
  7. #include "Utilities.h"
  8. #include "About.h"
  9.  
  10. extern short DlgFont: 0xAFA;
  11.  
  12. #define APPL            128        /* ID of application 'ICN#' */
  13.  
  14. #define AboutDialog        128        /* About ... */
  15. #define        AboutOk            1
  16. #define        AboutText        2
  17. #define        AboutIcon        3
  18. #define        AboutFc            4
  19. #define        AboutFm            5
  20. #define        AboutVc            6
  21. #define        AboutVm            7
  22. #define        AboutRc            8
  23. #define        AboutRm            9
  24. #define        AboutHp            10
  25. #define        AboutIs            17
  26. #define        AboutIm            19
  27. #define        AboutVersion2    20
  28. #define        AboutVersion1    21
  29. #define        AboutFrame        22
  30.  
  31. /* ----- Get long version message from 'vers' resource ----------------- */
  32.  
  33. static void SetVersion (
  34.     register DialogPtr dialog,
  35.     register short id,
  36.     register short item)
  37. {
  38.     register Handle h;
  39.     register unsigned char *p;
  40.  
  41.     if (h = GetResource('vers', id)) {
  42.         HLock(h);
  43.         p = (unsigned char *)*h;
  44.         p += 7 + p[6];
  45.         setText(dialog, item, p);
  46.         ReleaseResource(h);
  47.     }
  48. }
  49.  
  50. /* ----- About File Lister ... ----------------------------------------- */
  51.  
  52. void DoAbout (
  53.     register short option,
  54.     register long heap)
  55. {
  56.     register StringHandle IDStrHandle;
  57.     register unsigned char *s;
  58.     register DialogPtr dialog;
  59.     register long x;
  60.     short item;
  61.     /*short font;*/
  62.     static unsigned char Erny[] = 
  63.         "\pErny Tontlinger    (CIS 73720,2200)\r"
  64.         "33, route d'Arlon\r"
  65.         "L-8410 Steinfort  Luxembourg";
  66.  
  67.     s = Erny;
  68.     if (option & (optionKey | shiftKey | controlKey))
  69.         IDStrHandle = 0L;
  70.     else
  71.         if (IDStrHandle = (StringHandle)GetResource(Creator, 0)) {
  72.             HLock(IDStrHandle);
  73.             s = *IDStrHandle;
  74.         }
  75.     /*
  76.     font = DlgFont;
  77.     DlgFont = geneva;
  78.     */
  79.     CenterDialog('DLOG', AboutDialog);
  80.     if (dialog = GetNewDialog(AboutDialog, 0L, -1L)) {
  81.         setText(dialog, AboutText, s);
  82.         setNumber(dialog, AboutFc, FileData.count);
  83.         setNumber(dialog, AboutFm, FileData.max);
  84.         setNumber(dialog, AboutVc, VolumeData.count);
  85.         setNumber(dialog, AboutVm, VolumeData.max);
  86.         setNumber(dialog, AboutIs, InfoSize);
  87.         setNumber(dialog, AboutIm, InfoMax);
  88.         setNumber(dialog, AboutHp, heap);
  89.         setNumber(dialog, AboutRc, InfoCount);
  90.         if (InfoCount) {
  91.             x = InfoSize/InfoCount;
  92.             if (InfoSize % InfoCount > InfoCount/2)
  93.                 x++;
  94.             if (x) {
  95.                 x = InfoMax/x;
  96.                 setNumber(dialog, AboutRm, x);
  97.             }
  98.         }
  99.         SetVersion(dialog, 1, AboutVersion1);
  100.         SetVersion(dialog, 2, AboutVersion2);
  101.         SetUserItem(dialog, AboutIcon, (ProcPtr)DrawICN);
  102.         SetUserItem(dialog, AboutFrame, (ProcPtr)FrameItem);
  103.         ModalDialog(0L, &item);
  104.         DisposDialog(dialog);
  105.     }
  106.     /*DlgFont = font;*/
  107.     if (IDStrHandle)
  108.         ReleaseResource(IDStrHandle);
  109. }
  110.